
#include "stdafx.h"

#include <windows.h>

/******************************************************************************/
/* osSleep
/*
/******************************************************************************/
void osSleep(int timeMs)
{
   Sleep(timeMs);
}

/******************************************************************************/
/* osDebugBreak
/*
/******************************************************************************/
void osDebugBreak(void)
{
   DebugBreak();
}

/******************************************************************************/
/* AssertionFailed
/*
/******************************************************************************/
void AssertionFailed(const char * condition, const char * file, int line)
{
   char buf[2048];
   sprintf(buf, "Assertion failed\n\n%s\n\nFile: %s\nLine: %d", condition, file, line);

   ShowErrorMsg(buf);

   osDebugBreak();
}

/******************************************************************************/
/* LOCK::LOCK
/*
/******************************************************************************/
osLOCK::osLOCK(void)
{
   CASSERT(sizeof(data) >= sizeof(CRITICAL_SECTION));

   InitializeCriticalSection((CRITICAL_SECTION *)data);
}

/******************************************************************************/
/* LOCK::LOCK
/*
/******************************************************************************/
osLOCK::~osLOCK(void)
{
   DeleteCriticalSection((CRITICAL_SECTION *)data);
}

/******************************************************************************/
/* osLOCK::Lock
/*
/******************************************************************************/
void osLOCK::Lock(void)
{
   EnterCriticalSection((CRITICAL_SECTION *)data);
}

/******************************************************************************/
/* LOCK::Unlock
/*
/******************************************************************************/
void osLOCK::Unlock(void)
{
   LeaveCriticalSection((CRITICAL_SECTION *)data);
}
